Регистрация...

Eserv Forum / E3 / Eproxy 3 Support / Как исключить из стандартной статистика

imported // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
Новости
12.10.2009
Переезд завершен
Как исключить из стандартной статистика (Трафик по пользователям) диапазон ip — целевых, а не локальных

Конечно, не включая этот диапазон в localnetworks...

Возможно ли?
 
Комментарии к этой версии (26.02.2008 17:30) [~miguel] 3b4ca0cd
АвторДатаТекстtags
pig26.02.2008 17:45
Это имеется в виду отчёт, встроенный в web-интерфейс? Там вообще никакой фильтрации по клиентским IP нет. Здесь и сейчас...
imported
Dandy26.02.2008 17:51
попробуйте MStat он это все умеет "из коробки". И не только это
imported
miguel26.02.2008 18:26
pig пишет: Это имеется в виду отчёт, встроенный в web-интерфейс? Там вообще никакой фильтрации по клиентским IP нет. Здесь и сейчас...


Да, именно этот отчет.
Я правильно понял, что просто некуда написать что-то типа

IF TARGET_IP=81.* THEN
статистику не писать ...

Sorry, синтаксисом eserv не владею.
imported
miguel26.02.2008 18:28
Dandy пишет: попробуйте MStat он это все умеет "из коробки". И не только это


С удовольствием бы.
Но затраты даже в 1руб надо так долго согласовывать...
imported
Dandy26.02.2008 18:40
miguel пишет:
pig пишет: Это имеется в виду отчёт, встроенный в web-интерфейс? Там вообще никакой фильтрации по клиентским IP нет. Здесь и сейчас...


Да, именно этот отчет.
Я правильно понял, что просто некуда написать что-то типа

IF TARGET_IP=81.* THEN
статистику не писать ...

Sorry, синтаксисом eserv не владею.


Для "ручной правки" вас интересуют файлы *.sql в каталоге: Eserv3\script\control\wwwroot\reports\data\stat\

Где уже "фильтр навешивайте" согласно синтаксису SQL.

Например для Traffic.sql
select CLIENT_IP AS IP, COUNT(CLIENT_IP) AS CNT, SUM(CLIENT_READ) as RS, SUM(CLIENT_WRITE) as WS, SUM(OTHER_READ) as ORS, SUM(OTHER_WRITE) as OWS from [{y}{m}stat.txt] group by CLIENT_IP order by SUM(CLIENT_WRITE)+SUM(CLIENT_READ) desc


фильтр по конкретному IP будет примерно так:
select CLIENT_IP AS IP, COUNT(CLIENT_IP) AS CNT, SUM(CLIENT_READ) as RS, SUM(CLIENT_WRITE) as WS, SUM(OTHER_READ) as ORS, SUM(OTHER_WRITE) as OWS from [{y}{m}stat.txt] where CLIENT_IP like 'AA.BB.CC.DD' group by CLIENT_IP order by SUM(CLIENT_WRITE)+SUM(CLIENT_READ) desc
imported
Dandy26.02.2008 18:42
miguel пишет:
С удовольствием бы.
Но затраты даже в 1руб надо так долго согласовывать...


а вы попробуйте закажите ключик (на полугодичный триал выпишем без проблем). Авось понравится и вам и начальству
imported
miguel26.02.2008 19:40
Dandy пишет:
where CLIENT_IP like 'AA.BB.CC.DD' ...



Но это же будет не TARGET, а CLIENT_IP...
А TARGET_IP, как я понимаю в {m}{y}stat.txt вообще не пишется.

Поэтому я и спрашивал, как вообще не писать в stat.txt строку, если TARGET_IP=АА.BB.CC.DD

А может быть возможно добавить целевой ip в stat.txt?
Тогда и фильтр на sql можно будет прикрутить
imported
pig26.02.2008 20:34
Ну, если действовать хирургическим путём, то надо редактировать Eproxy\conf\OnDisconnect.rules.txt. Что-то такого типа:
FROM-HOST =~ 222.222.222.* 0= | vElapsed uOtherWriteStat @ uOtherReadStat @ uClientWriteStat @ uClientReadStat @ 450 LOG

А писать целевой IP в статистику — это посложнее будет, лог там общий для всех серверов, а "вторая сторона" есть только у прокси.

Нет, не пойдёт так. Теоретически, в рамках одной клиентской сессии могут быть коннекты к разным целям, Eproxy это допускает. А если на это ещё каскадирование наложится, да неустойчивый коннект к каскаду (с переключением на прямой маршрут)...
В общем, это не та статистика, которая вас интересует.
imported
Dandy26.02.2008 20:46
FROM-HOST =~ 222.222.222.* 0= | vElapsed uOtherWriteStat @ uOtherReadStat @ uClientWriteStat @ uClientReadStat @ 450 LOG


но тогда статистика по другим клиентским IP писаться вообще не будет... наверно будет правильней создать дубликат лога 450 в commonplugins\log.str.txt добавив в него нужное поле т.е.

450 *{Dirs[Stat]}\{YYYYMM}stat.txt*{YYYY-MM-DD} {hh:mm:ss};{CLIENT};{PROTOCOL};{n};{n};{n};{n};{n};{User-};{Domain};{Port};{CLIENT_MAC} 450450*{Dirs[Stat]}\{YYYYMM}proxyEx.txt*{YYYY-MM-DD} {hh:mm:ss};{CLIENT};{FROM-HOST};{PROTOCOL};{n};{n};{n};{n};{n};{User-};{Domain};{Port};{CLIENT_MAC}


в Eproxy\conf\OnDisconnect.rules.txt добавить в конец:
vElapsed uOtherWriteStat @ uOtherReadStat @ uClientWriteStat @ uClientReadStat @ 450450 LOG


добавить в \Eserv3\DATA\log\stat\schema.ini секцию:
[200802proxyEx.txt] ColNameHeader=False Format=Delimited(;) MaxScanRows=0 CharacterSet=ANSI Col1=DATE Date(yyyy-mm-dd) Width 19 Col2=CLIENT_IP Char Width 255 Col3=FROM_HOST Char Width 255 Col4=PROTOCOL Char Width 255 Col5=CLIENT_READ Integer Col6=CLIENT_WRITE Integer Col7=OTHER_READ Integer Col8=OTHER_WRITE Integer Col9=DURATION Integer Col10=USER Char Width 255 Col11=DOMAIN Char Width 255 Col12=PORT Char Width 255 Col13=CLIENT_MAC Char Width 17


и создать новый отчет аналогичный Traffic.sql только с:
from [{y}{m}proxyEx.txt]
imported
pig26.02.2008 21:06
Тогда уж так:
450450*{Dirs[Stat]}\{YYYYMM}proxyEx.txt*{YYYY-MM-DD} {hh:mm:ss};{CLIENT};{FROM-HOST};{PROTOCOL};{n};{n};{n};{n};{n};{User-};{Domain};{Port};{CLIENT_MAC}

Под номер строки отведено строго шесть знаков. Ну, и имя файла чтобы соответствовало записи в схеме.
imported
Dandy26.02.2008 21:16
ага, подправил. Спасибо
imported
miguel26.02.2008 21:49
pig пишет: Тогда уж так:
450450*{Dirs[Stat]}\{YYYYMM}proxyEx.txt*{YYYY-MM-DD} {hh:mm:ss};{CLIENT};{FROM-HOST};{PROTOCOL};{n};{n};{n};{n};{n};{User-};{Domain};{Port};{CLIENT_MAC}

Под номер строки отведено строго шесть знаков. Ну, и имя файла чтобы соответствовало записи в схеме.


Да, верно, у меня сразу не получилось.
Я написал "4501 ". остальное сейчас проверяю...
... и proxyEx.txt сразу не воткнулось — подправил на proxy.txt
imported
miguel26.02.2008 22:25
Что-то где-то рядом.
Только с sql у меня неважно...

select USER, SUM(OTHER_READ) as ORS, SUM(OTHER_WRITE) as OWS from [{y}{m}proxy.txt] where FROM-HOST like '{ip}' group by USER order by SUM(OTHER_WRITE)+SUM(OTHER_READ) desc

в браузере пишу: localhost:3140/reports/stat/UserTrafficNEW.html?ip=209.85.135.103&m=02&y=2008

а в итоге...
[Microsoft][Драйвер ODBC Текст] Слишком мало параметров. Требуется 2.

в schema.ini уже добавил.
[200802proxy.txt]
...
Col3=FROM-HOST Char Width 255
...
imported
Dandy26.02.2008 22:41
Есть подозрение, что текстовый ODBC драйвер ревниво относится к '-' в имени поля.
Попробуйте заменить FROM-HOST на FROM_HOST везде кроме log.str.txt
imported
miguel26.02.2008 23:06
Dandy пишет: Есть подозрение, что текстовый ODBC драйвер ревниво относится к '-' в имени поля.

Так и было 8O

Всё получилось
Теперь, чтобы нужные ип не включались в статистику можно, как я понимаю просто добавить их в запрос sql
WHERE NOT FROM_HOST LIKE '195.%' AND NOT FROM_HOST LIKE '196.%'


сейчас попробую
imported
miguel27.02.2008 02:30
Сделал по аналогии usertraffic, prototraffic & trafficdetails
Всё работает как надо!

Спасибо Dandy, cпасибо Pig!

2 Dandy: MStat обещаю посмотреть
imported
miguel27.02.2008 16:06
Опа!
А разве smtp трафик не идет в статистику?
Пришло 30мб почты, ушло 10мб. Ни у одного user`а ничего не появилось...
Причем в бывшей статистике usertraffic тоже внешний трафик входящий и исходящий по нулям...
imported
pig27.02.2008 16:28
Там нет деления на внешний и внутренний. Там есть деление на клиентскую сторону и сторону цели. Сторона цели есть только у прокси. Ну, и ещё у FTP туда попадает трафик канала данных.
imported
miguel27.02.2008 16:41
Pig, спасибо за ответ!
Я правильно в таком случае понимаю:
  1. Весь входящий smtp трафик не пишется в трафик user`у, а пишется просто пользователь "-" ?
  2. Отправленных писем трафик тоже не считается внешним и записывается пользователю по имени email`a как внутренний трафик?
imported
pig27.02.2008 18:03
  1. Да. Пишется на того, кто письмо на сервер запихал. Кому — это надо статистику доставки смотреть.
  2. Трафик агента сюда вообще не попадает. У агента свой собственный лог и свой собственнй отчёт.
imported
miguel28.02.2008 21:38
pig пишет: 1. Да. Пишется на того, кто письмо на сервер запихал. Кому — это надо статистику доставки смотреть.
  1. Трафик агента сюда вообще не попадает. У агента свой собственный лог и свой собственнй отчёт.
Дописал еще чтобы в MMYYYYproxy.txt писалась статистика SMTP. Теперь smtp трафик пишется на того, кому почта в ящик была положена (по размеру письма).
А трафик пользователя "-" остался только тот, от кого smtp сервер письмо не пропустил (blacklist итп).
Теперь всё Ок!
Спасибо за помощь!
imported
Работает на Eserv/5.05567 (10.02.2020)